// 这个配置文件，是一个js文件，通过node中的模块操作，外向暴露了一个配置对象
const path = require('path')

// 导入html插件 webpack
const htmlWebpackPlugin = require('html-webpack-plugin')
// 因为在使用vue-loader@15 版本之后，需要引入VueLoaderPlugin插件
const VueLoaderPlugin = require('vue-loader/lib/plugin')

module.exports  = {
    //模式
    mode:  "none",
    // 需要手动配置入口和出口
    entry:path.join(__dirname,'./src/main.js'),   //打包的入口文件

    output:{   
        //指  定输出的文件位置和名称
         path:path.join(__dirname,'./dist'),
         filename:'bundle.js' 

    },

    plugins:[
        new htmlWebpackPlugin({  //创建一个在内存中生成HTML文件的插件
            template: path.join(__dirname,'./src/index.html'),//指定生成页面的路径
            filename:'index.html'   //指定生成页面的名称
        }),
        // 实例化vue加载插件
         new VueLoaderPlugin()
    ],
    module:{   //第三方模块，用于配置一些加载器
        rules:[   //用第三方模块，配置匹配规则
            {   test:/\.css$/, use:['style-loader','css-loader']   } , //配置处理 .css的第三方loader模块
            {  test:/\.less$/ ,use:['style-loader','css-loader','less-loader'] },   //配置处理 .less的第三方的模块
            {  test:/\.scss$/ ,use:['style-loader','css-loader','sass-loader'] } , //配置处理 .scss的第三方模块
            {  test:/\.(jpg|png|gif|bmp|jpeg)$/, use:'url-loader?limit=117640&name=[hash:8]-[name].[ext]'} ,   //处理图片路径的第三方刚
            {  test:/\.(eot|svg|ttf|woff|woff2)$/,use:'url-loader'},  //处理bootstrap字体样式的处理模块
            {  test:/\.vue$/, use:'vue-loader' } ,  //处理.vue文件第三方模块
            {  test:/\.js$/ , use:'babel-loader',exclude: /node_modules/ }   //处理js高级语法的第三方模块
        ] 
    },
    resolve:{
        alias:{   //设置导入vue的路径
            // "vue$":"vue/dist/vue.js"
        }
    }
}